package com.atguigu.demo;

/**
 * @Author 孔德成
 * @Slogan 致敬大师，致敬未来的你
 * @date 2021/8/10
 */

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * 使用 Executors 线程池工具类创建线程池
 * 有20个请求线程来银行办理业务，该银行目前有n个工作人员对外提供服务。
 */
public class ExecutorsDemo {
    public static void main(String[] args) {

        ExecutorService threadPool = Executors.newFixedThreadPool(5); // 一池5线程，一个银行里面有5个工作人员办理业务
//        ExecutorService threadPool = Executors.newSingleThreadExecutor(); // 一池1线程，一个银行里面有1个工作人员办理业务
//        ExecutorService threadPool = Executors.newCachedThreadPool(); // 一池n线程，一个银行里面有n个工作人员办理业务

        try {
            for (int i = 0; i < 20; i++) {
                int finalI = i;
                threadPool.submit(() -> {
                    System.out.println(Thread.currentThread().getName() + "\t为顾客" + finalI + "办理业务");
                });
            }
        } finally {
            threadPool.shutdown();
        }
    }
}
